Auteur·rice
Affiliation

Michaël Delorme

SSP/DéMéSIS

Date de publication

7 février 2025

Modifié

3 février 2025

Code
library(readr)
library(dplyr)
library(ggplot2)
library(forcats)

1 Découvrir l’interface

  • Fichier > Nouveau projet > Nouveau répertoire > Projet Quarto >
  • choisir un répertoire, par exemple : formation dans ~
  • moteur knitr

ou, dans un projet existant :

  • Fichier > Nouveau fichier > R Quarto document

Basculer successivement sur l’éditeur texte brut / WYSIWYM1

Tricoter le document

2 Produire un document simple

2.1 Formater du texte

  • Nouveau document Quarto
  • Insérer du texte
  • Insérer des titres de différent niveau
  • Passer en gras, italique
  • Insérer une image
  • Faire une liste

Tricoter le document.

3 Code

3.1 Présentation des données

Code
ra <- read_rds("donnees/ra_2020.rds") 

3.2 Utiliser les résultats de calculs

  • Insérer un code R chargeant les paquets nécessaires, ouvrant les données du RA et calculant la SAU totale
  • Exécuter
  • Tricoter
Code
ra |> 
  summarise(sau_tot_ha = sum(sau_tot, na.rm = TRUE))
# A tibble: 1 × 1
  sau_tot_ha
       <dbl>
1     64986.
  • Reprendre le code précédent, sauver le résultat dans une variable.
  • Afficher le résultat au sein d’une phrase
Code
sau_tot_ha <- ra |> 
  summarise(sau_tot_ha = sum(sau_tot, na.rm = TRUE)) |> 
  pull(1)

La SAU totale vaut 6.498577^{4} ha.

  • Formater le résultat (arrondi, séparateur décimal, séparateur de milliers)

La SAU totale vaut 64 985,8 ha.

  • Utiliser des options() ou des knitr::knit_hooks() pour ne pas formater chaque sortie
Code
options(OutDec = ",",
        digits = 1,
        scipen = 1e3)

# ou par exemple

knitr::knit_hooks$set(inline = function(x) {
  if (!is.numeric(x)) { 
    x
  } else {
    prettyNum(x, big.mark = " ")
  }
})

La SAU totale vaut 64 986 ha.

3.3 Débuguer

  • Exécuter chunk par chunk
  • Utiliser “Exécuter tous les chunks au-dessus”.

4 Afficher des tableaux

4.1 Tibble brut

Code
ra
Tableau 1
# A tibble: 1.000 × 11
   siege_code_com siege_lib_com  siege_dep siege_lib_dep siege_reg siege_lib_reg
   <chr>          <chr>          <chr>     <chr>         <chr>     <chr>        
 1 97128          LESCURE D ALB… 51        VENDEE        52        BOURGOGNE FR…
 2 37178          MARCOLES       57        PAS DE CALAIS 76        OCCITANIE    
 3 89436          VALREAS        11        PYRENEES ATL… 53        NOUVELLE AQU…
 4 89143          RIOTORD        95        PYRENEES ATL… 53        OCCITANIE    
 5 97103          CAUMONT        34        HAUTE CORSE   32        AUVERGNE RHO…
 6 84087          AZY LE VIF     37        HAUTE SAVOIE  53        NOUVELLE AQU…
 7 40317          SOINGS EN SOL… 971       VIENNE        44        NORMANDIE    
 8 12120          BONNAT         22        AVEYRON       75        AUVERGNE RHO…
 9 33389          MONTASTRUC LA… 16        CALVADOS      03        NOUVELLE AQU…
10 28111          OYRE           87        MAINE ET LOI… 76        BOURGOGNE FR…
# ℹ 990 more rows
# ℹ 5 more variables: geo_lct <chr>, pbstot_coef17 <dbl>, otefda_coef17 <chr>,
#   sau_tot <dbl>, ugbag_tot <dbl>

4.2 HTML mis en forme

Code
library(gt)

ra |> 
  slice_head(n = 5) |> 
  gt()
siege_code_com siege_lib_com siege_dep siege_lib_dep siege_reg siege_lib_reg geo_lct pbstot_coef17 otefda_coef17 sau_tot ugbag_tot
97128 LESCURE D ALBIGEOIS 51 VENDEE 52 BOURGOGNE FRANCHE COMTE FR_CRS3035RES1000mN2888000E3883000 2359 4600 109 0
37178 MARCOLES 57 PAS DE CALAIS 76 OCCITANIE FR_CRS3035RES1000mN2316000E3389000 3857 4600 220 0
89436 VALREAS 11 PYRENEES ATLANTIQUES 53 NOUVELLE AQUITAINE FR_CRS3035RES1000mN2316000E3562000 478411 6184 0 167
89143 RIOTORD 95 PYRENEES ATLANTIQUES 53 OCCITANIE FR_CRS3035RES1000mN2372000E4045000 15800 6184 131 0
97103 CAUMONT 34 HAUTE CORSE 32 AUVERGNE RHONE ALPES FR_CRS3035RES1000mN2540000E3823000 213106 1516 276 0
Code
library(knitr)

ra |> 
  slice_head(n = 5) |> 
  kable()
siege_code_com siege_lib_com siege_dep siege_lib_dep siege_reg siege_lib_reg geo_lct pbstot_coef17 otefda_coef17 sau_tot ugbag_tot
97128 LESCURE D ALBIGEOIS 51 VENDEE 52 BOURGOGNE FRANCHE COMTE FR_CRS3035RES1000mN2888000E3883000 2359 4600 109 0
37178 MARCOLES 57 PAS DE CALAIS 76 OCCITANIE FR_CRS3035RES1000mN2316000E3389000 3857 4600 220 0
89436 VALREAS 11 PYRENEES ATLANTIQUES 53 NOUVELLE AQUITAINE FR_CRS3035RES1000mN2316000E3562000 478411 6184 0 167
89143 RIOTORD 95 PYRENEES ATLANTIQUES 53 OCCITANIE FR_CRS3035RES1000mN2372000E4045000 15800 6184 131 0
97103 CAUMONT 34 HAUTE CORSE 32 AUVERGNE RHONE ALPES FR_CRS3035RES1000mN2540000E3823000 213106 1516 276 0

4.2.1 Interactif

Javascript avec datatable

Code
library(DT)

ra |> 
  slice_head(n = 100) |> 
  datatable(
    options = list(
      language = list(
        url = "https://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json")))
Tableau 2

5 Graphiques

  • Ajouter un graphique dans le document Quarto. Ex. : Top 10 SAU départementales à partir de ra.
  • Préciser un titre de figure
Code
graph_sau <- ra |> 
  summarise(.by = c(siege_lib_dep),
          sau_dep_ha = sum(sau_tot, na.rm = TRUE),
          n = paste(n(), "exploit.")) |> 
  slice_max(sau_dep_ha, n = 10) |> 
  mutate(siege_lib_dep = fct_reorder(siege_lib_dep, sau_dep_ha)) |> 
  ggplot(aes(siege_lib_dep,
             sau_dep_ha,
             text = n)) +
  geom_col() +
  coord_flip() + 
  labs(title = "10 plus grandes SAU",
       x = "dép.",
       y = "surface (ha)")

graph_sau
Figure 1 –  SAU top 10

5.1 Interactivité

Code
library(plotly)

graph_sau |> 
  ggplotly(tooltip = "n")
Figure 2 –  SAU top 10 (interactive)

5.2 Disposition

Il est possible de choisir l’emprise et l’emplacement des graphiques (disponible aussi pour d’autres éléments).

  • Placer un graphique en marge avec l’option column:.
Code
densite_sau <- ra |> 
  ggplot() +
  geom_density(aes(sau_tot), fill = "darkslategray3")

densite_sau
Figure 3 –  Distribution de la SAU

doc

Par exemple : densité ou histogramme de la sau_tot.

  • Disposer deux graphiques côte à côte avec l’option layout-ncol:.
    Il est possible d’ajouter des sous-légendes pour chaque graphique doc
Code
densite_sau
graph_sau
(a) Distribution
(b) Top 10
Figure 4 –  SAU

6 Cartes

Code
library(sf)
library(leaflet)

"~/CERISE/03-Espace-de-Diffusion/000_Referentiels/0040_Geo/IGN/adminexpress/adminexpress_cog_simpl_000_2024.gpkg" |> 
  read_sf(layer = "region") |> 
  leaflet() |>
  addTiles() |> 
  addPolygons()
Figure 5 –  Carte

7 HTML avec éléments interactifs

8 PDF

Hors CERISE ?

  • Changer le format dans l’en-tête
  • Tricoter

9 Tableau de bord

10 Rapports paramétrés

  • Faire un rapport régional donnant le nom de la région, la SAU, les UGB totaux.
  • Générer le rapport pour toutes les régions

Méta

Ce document est produit par :
C:/Users/michael.delorme/Documents/formations/formation_quarto/exercices/exercices_quarto.qmd

Dépôt Git

Notes de bas de page

  1. What You See Is What You Mean↩︎